const api = require("../../utils/api");
const { IMAGE_SERVER } = require("../../utils/request");

Page({
  data: {
    bannerImages: [], // 用于存放轮播图图片路径
    userInfo: null, // 用户信息
    location: {
      latitude: 26.02929, // 默认纬度
      longitude: 119.30061, // 默认经度
      name: "纳德网球学练馆",
      address: "福州市仓山区红江路69号融邦中心6号楼4楼",
    },
    phoneNumber: "18950499178", // 默认电话号码
  },

  onLoad: function () {
    this.fetchBannerImages();
    this.checkLoginStatus();
  },

  onShow: function () {
    // 每次页面显示时，检查登录状态
    this.checkLoginStatus();
  },

  // 检查登录状态
  checkLoginStatus: function () {
    const token = wx.getStorageSync("token");
    const userInfo = wx.getStorageSync("userInfo");

    if (token && userInfo) {
      this.setData({ userInfo });
    }
  },

  // 获取轮播图数据
  fetchBannerImages: function () {
    wx.showLoading({
      title: "加载中",
    });

    // 调用 API 获取轮播图图片，使用列表接口并指定图片类型为"banner"
    api.image
      .getImages({ type: "banner" })
      .then((res) => {
        console.log("✅ 成功获取轮播图数据：", res);

        if (res.data && res.data.list && res.data.list.length > 0) {
          // 处理图片URL，添加服务器地址前缀
          const images = res.data.list.map(
            (item) => `${IMAGE_SERVER}${item.url}`
          );

          this.setData({
            bannerImages: images,
          });
        } else {
          console.log("未获取到轮播图数据，将使用默认图片");
        }
      })
      .catch((err) => {
        console.error("❌ 获取轮播图失败:", err);
        // 失败时使用默认图片，在wxml中已定义
      })
      .finally(() => {
        wx.hideLoading();
      });
  },

  // 导航到场地预约页面
  navigateTovenueReservation: function () {
    // 检查登录状态，如果未登录则先跳转到登录页
    if (!wx.getStorageSync("token")) {
      wx.showToast({
        title: "请先登录",
        icon: "none",
        duration: 1500,
      });

      setTimeout(() => {
        wx.navigateTo({
          url: "/pages/registration/registration",
        });
      }, 1500);
      return;
    }

    // 已登录，直接跳转到场地预约页面
    wx.switchTab({
      url: "/pages/venueReservation/venueReversation",
    });
  },

  // 导航到我的红包页面
  navigateToMyCoupon: function () {
    // 先检查是否登录
    if (!wx.getStorageSync("token")) {
      wx.showToast({
        title: "请先登录",
        icon: "none",
      });
      // 跳转到登录页
      setTimeout(() => {
        wx.navigateTo({
          url: "/pages/registration/registration",
        });
      }, 1000);
      return;
    }

    wx.navigateTo({
      url: "/pages/mycoupon/mycoupon",
    });
  },

  // 导航到我的订单页面
  navigateToMyOrder: function () {
    // 先检查是否登录
    if (!wx.getStorageSync("token")) {
      wx.showToast({
        title: "请先登录",
        icon: "none",
      });
      // 跳转到登录页
      setTimeout(() => {
        wx.navigateTo({
          url: "/pages/registration/registration",
        });
      }, 1000);
      return;
    }

    wx.navigateTo({
      url: "/pages/myorder/myorder",
    });
  },

  // 导航到地图位置
  navigateToLocation: function () {
    const { latitude, longitude, name, address } = this.data.location;

    wx.openLocation({
      latitude,
      longitude,
      name,
      address,
      scale: 18,
    });
  },

  // 拨打电话
  makePhoneCall: function () {
    wx.makePhoneCall({
      phoneNumber: this.data.phoneNumber,
      success: function () {
        console.log("拨打电话成功");
      },
      fail: function () {
        console.log("拨打电话失败");
      },
    });
  },
});
